//
//  UIView+D_Geometry.h
//  EraserRubber_2_SaijT
//
//  Created by 丁诚昊 on 15/12/2.
//  Copyright © 2015年 ZSTech.iOS.丁诚昊(831). All rights reserved.
///  一个处理UIView绘图的常用工具类 有一些常用的QuartzCore2D绘图方法

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

/**
 * 随机选择一个数组元素
 * @author DCH
 */
extern id(^pistonBlock)(NSArray*);
/**
 * 获得九宫格算法的宽高
 * @author DCH
 */
extern long(^puzzleBlock)(int);


typedef CGFloat screenSacleXOfiOS;

#ifndef DCHScreenSacleXOfiOS
#define DCHScreenSacleXOfiOS [UIScreen mainScreen].bounds.size.height / [UIScreen mainScreen].bounds.size.width
#define kscreemWidth  [UIScreen mainScreen].bounds.size.width
#define kscreemHeight  [UIScreen mainScreen].bounds.size.height
#endif

/** iOS大一统frames[]解决方案 :---> 基础方法定义与实现 */
static inline CGRect D_CGRectMake(CGFloat left , CGFloat top , CGFloat width, CGFloat height);

@interface UIView (QuartZ_Base)
/**屏幕的相对宽度*/
@property (assign,nonatomic,readonly) CGFloat screenHeight; //高
@property (assign,nonatomic,readonly) CGFloat scrrenWidth; //高

/** 使用一张 NSbundle背景图片直接渲染一个UIView */
-(UIView*) RenderWithCGImage:(NSString*)backgroundIM;

-(void) foo;
@end

@interface UIView (D_Geometry)
+ (UIColor *)randomColor;
/**
 视图bounnds.size
 #UI布局~ 实际上在数学上有一个简单的离散数学关系：--->
 正交投影 |C1011001-1 > C0100110-2|
 这种非常玄妙的算法:--->
 Left+Top确定坐标系基准点，链式反应来到节点1 分支1.1｜1.2 根据宽高或者中心点
 链式来到2.1 最终确定3.0
 Size ( 宽高 ＋ 基准点 )｜( 宽高 + 中心点 ) --->size(bounds|frames)
 这类似于苹果的VFL标记语言 也就是后来的 NSConstraint｜Masonry
 可扩展标记语言 XML
 
 #---这种穷举和证明推演出来的公式，非常非常玄妙---~
 ^ 量子计算机 ^ (他应该是q5进制 运算效能是电子计算机的10万倍) q = quantum * 5 ^ N
 & 生物计算机 ^ (人类已经实现了对神经网络插值运算 N进制 效能是电子计算机的~13亿倍)
 */
@property (nonatomic,assign) CGFloat D_Left;
@property (nonatomic,assign) CGFloat D_Top;
@property (nonatomic,assign) CGFloat D_CenterX; ///1.1
@property (nonatomic,assign) CGFloat D_CenterY; ///1.2
///--->坐标系转换
@property (nonatomic,assign) CGFloat D_Width;
///--->正交投影--->frames--->NSConstraint
@property (nonatomic,assign) CGFloat D_Height;  ///2.1
@property (nonatomic,assign) CGSize  D_Size;    ///3.0
@end

